from 工程.凌云项目.MLS接收模块.基础配置.基础配置引用 import *
    
def MLS抗混迭滤波特性测试初始化():
    模块编号 = str(sys.UUTINFO[1])
    if gy参数.初始化标识 != 'MLS抗混迭滤波特性测试初始化' + 模块编号:
        gy参数.初始化标识 = 'MLS抗混迭滤波特性测试初始化' + 模块编号
    else:
        return
    gy产品.模块控制.连接()
    gy仪器.频谱仪.连接()
    gy仪器.信号源.连接()
    gy产品.射频路由.连接()

    gy仪器.信号源.设置幅度(-90)
    gy仪器.信号源.调制开关('关')
    gy仪器.信号源.射频开关('开')
    gy仪器.频谱仪.设置扫频带宽(8e5)
    gy仪器.频谱仪.设置视频带宽(10e3)
    gy仪器.频谱仪.设置分析带宽(10e3)
    gy仪器.频谱仪.设置扫描时间自动()
    gy仪器.频谱仪.设置功率单位('DBM')
    gy仪器.频谱仪.设置参考幅度(15)
    gy仪器.频谱仪.设置触发源IMM()
    gy仪器.频谱仪.设置自动衰减()
    gy仪器.频谱仪.设置触发开关('开')
    gy仪器.频谱仪.设置内部增益开关(0)
    gy仪器.频谱仪.设置中心频率(70e6)
    gy仪器.频谱仪.设置每格幅度(10)
    gy仪器.频谱仪.设置最大保持开关("关")

    gy产品.射频路由.接通MLS频谱仪测试()
    print("MLS抗混迭滤波特性测试初始化")
    
def MLS抗混迭滤波特性(频点=5031):
    MLS抗混迭滤波特性测试初始化()
    频率 = int(频点 * 1000000)
    gy产品.模块控制.设置MLS频率(频点)

    gy仪器.信号源.设置幅度(-100+gy参数.通道补偿['MLS'])

    扫频带宽 = int(800e3)
    扫描步进 = int(扫频带宽/200)
    分析带宽 = 扫描步进

    gy仪器.频谱仪.设置分析带宽(分析带宽)
    gy仪器.频谱仪.设置视频带宽(分析带宽)
    gy仪器.频谱仪.设置扫频带宽(扫频带宽)

    gy仪器.信号源.设置频率(频率)
    gy方法.时间处理.延时(2)
    gy仪器.频谱仪.设置寻峰值()
    峰值 = gy仪器.频谱仪.读幅度()

    起点 = 220
    for i in range(44):
        gy产品.模块控制.设置AGC控制('MLS', 起点)
        gy方法.时间处理.延时(0.3)
        gy仪器.频谱仪.设置寻峰值()
        峰值 = gy仪器.频谱仪.读幅度()
        if 峰值 > 4:
            起点 -= 3
        elif 峰值 < -5:
            起点 += 3
        else:
            break

        if i > 255 or i < 0:
            raise Exception("未找到峰值！！！")

    gy仪器.信号源.设置频率(频率-扫描步进*11)
    gy方法.时间处理.延时(1)
    for i in range(频率-扫描步进*11, 频率 - (扫频带宽 // 2), -扫描步进):
        gy仪器.信号源.设置频率(i)
        gy方法.时间处理.延时(1)
        gy仪器.频谱仪.设置寻峰值()
        峰值1 = gy仪器.频谱仪.读幅度()
        if 峰值 - 峰值1 > 3:
            df3d = 频率 - i - 扫描步进
            break

    gy仪器.信号源.设置频率(频率+扫描步进*8)
    gy方法.时间处理.延时(1)
    for i in range(频率+扫描步进*8, 频率 + (扫频带宽 // 2), 扫描步进):
        gy仪器.信号源.设置频率(i)
        gy方法.时间处理.延时(1)
        gy仪器.频谱仪.设置寻峰值()
        峰值1 = gy仪器.频谱仪.读幅度()
        if 峰值 - 峰值1 > 3:
            df3g = i - 频率 - 扫描步进
            break

    gy仪器.信号源.设置幅度(-100+gy参数.通道补偿['MLS'] + 60)
    gy仪器.信号源.设置频率(频率 - df3d-扫描步进)
    gy方法.时间处理.延时(1)
    for i in range(频率 - df3d-扫描步进, 频率 - (扫频带宽 // 2), -扫描步进):
        gy仪器.信号源.设置频率(i)
        gy方法.时间处理.延时(1)
        gy仪器.频谱仪.设置寻峰值()
        峰值1 = gy仪器.频谱仪.读幅度()
        if 峰值 - 峰值1 > 0:
            df60d = 频率 - i - 扫描步进
            break

    gy仪器.信号源.设置频率(频率 + df3g+扫描步进)
    gy方法.时间处理.延时(1)
    for i in range(频率 + df3g+扫描步进, 频率 + (扫频带宽 // 2), 扫描步进):
        gy仪器.信号源.设置频率(i)
        gy方法.时间处理.延时(1)
        gy仪器.频谱仪.设置寻峰值()
        峰值1 = gy仪器.频谱仪.读幅度()
        if 峰值 - 峰值1 > 0:
            df60g = i - 频率 - 扫描步进
            break

    BW3=(df3g+df3d)/1000
    BW60=(df60g+df60d)/1000
    滤波特性测试结果=BW60/BW3
    print(df3d,df3g,BW3,df60d,df60g,BW60,滤波特性测试结果)
    gy方法.测试结果保存.结果保存(BW3, 'BW3')
    gy方法.测试结果保存.结果保存(BW60, 'BW60')
    gy方法.测试结果保存.结果保存(滤波特性测试结果,'带宽比')

if __name__=='__main__':
    pass
    sys.UUTINFO = [0, 1]
    MLS抗混迭滤波特性(5031)
